/*
   系统主程序框架
*/

#include <complex.h>
int input(complex *a,char *op,complex *b);
int main(){
    complex a,b,c;
	char op;
	printf("请输入复数运算式：\n");
	if(input( &a, &op, &b))
		{
			switch (op){//根据op的输入值决定执行加减乘除哪个运算
				case '+':   c = add(a,b);break;
				case '-':   c = sub(a,b);break;
				case '*':   c = mul(a,b);break;
				case '/':   c = div(a,b);break;
			}
			show(a,op,b,c); //输出运算式及结果
		}
	else 
	puts("err");//输入不合法
	return 0;	
}
int input(complex *pa,char *p,complex *pb)//输入
{
	char t,i;//t为判断实部后虚部为正还是为负，i为复数式中的i
	scanf("%lf%c%lf%c ",&pa->re,&t,&pa->im,&i);
	*p=getchar();
	if(t=='-')pa->im=-pa->im;//若t为-，*pa的虚部为负数
	scanf(" %lf%c%lf%c",&pb->re,&t,&pb->im,&i);
	getchar();
	if(t=='-')pb->im=-pb->im;//若t为-，*pb的虚部为负数
	if((*p=='+'||*p=='-'||*p=='*'||*p=='/')&&!(pb->re==0&&pb->im==0)){
		return 1;//输入合法的情况
	}
	return 0;
}